﻿package com.rbac.system.service;

import com.rbac.system.dto.ChangePasswordDTO;
import com.rbac.system.dto.LoginDTO;
import com.rbac.system.dto.RegisterDTO;
import com.rbac.system.dto.UpdateProfileDTO;
import com.rbac.system.vo.LoginVO;
import com.rbac.system.vo.TokenRefreshVO;
import com.rbac.system.vo.UserInfoVO;

public interface UserService {
    /**
     * 用户登录
     */
    LoginVO login(LoginDTO loginDTO);
    
    /**
     * 用户注册
     */
    void register(RegisterDTO registerDTO);
    
    /**
     * 根据用户名获取用户信息（内部使用）
     */
    UserInfoVO getUserInfo(String username);
    
    /**
     * 获取当前登录用户信息
     */
    UserInfoVO getCurrentUserInfo();
    
    /**
     * 根据用户名更新用户资料（内部使用）
     */
    void updateProfile(String username, UpdateProfileDTO updateProfileDTO);
    
    /**
     * 更新当前登录用户资料
     */
    void updateCurrentUserProfile(UpdateProfileDTO updateProfileDTO);
    
    /**
     * 根据用户名修改密码（内部使用）
     */
    void changePassword(String username, ChangePasswordDTO changePasswordDTO);
    
    /**
     * 修改当前登录用户密码
     */
    void changeCurrentUserPassword(ChangePasswordDTO changePasswordDTO);

    /**
     * 刷新token
     */
    TokenRefreshVO refreshToken(String refreshToken);
} 

